package com.junzhiit.nengji.cms.service;

import java.util.Map;

import com.junzhiit.nengji.cms.web.vo.DataTablesParamVO;
import com.junzhiit.nengji.cms.web.vo.ReservedVO;
import com.junzhiit.nengji.cms.web.vo.ResultVO;
import com.junzhiit.nengji.cms.web.vo.ShopClientVO;

public interface ShopClientService {
	
	/**
	 * 
	 * TODO 将客户升级为会员
	 * @author Zaki
	 * @time 2018年8月10日 下午11:02:18
	 * @return ResultVO
	 */
	public ResultVO add(ShopClientVO shopClientVO);
	
	/**
	 * 
	 * TODO 查找该商户所有用户
	 * @author Zaki
	 * @time 2018年4月2日 下午3:36:28
	 * @return Map<String,Object>
	 */
	public Map<String, Object> findAll(DataTablesParamVO dtp, ShopClientVO shopClientVO);
	
	/**
	 * 
	 * TODO 修改客户的会员卡
	 * @author Zaki
	 * @time 2018年8月11日 下午4:16:24
	 * @return ResultVO
	 */
	public ResultVO changeClient(ShopClientVO shopClientVO);
	
	/**
	 * 
	 * TODO 根据ID查找该客户信息
	 * @author Zaki
	 * @time 2018年8月11日 下午4:17:01
	 * @return ResultVO
	 */
	public ResultVO findClientById(String clientId);
	
	/**
	 * 
	 * TODO 根据定时器修改会员卡已过期的会员状态
	 * @author Zaki
	 * @time 2018年4月19日 上午10:53:21
	 * @return void
	 */
	public void updateMemberExpireTime();
	
	/**
	 * 
	 * TODO 给会员在线储值
	 * @author Zaki
	 * @time 2018年8月11日 下午4:48:59
	 * @return ResultVO
	 */
	public ResultVO memberCharge(ShopClientVO shopClientVO);
	
	/**
	 * 
	 * TODO 商家预留会员编号
	 * @author Zaki
	 * @time 2018年8月13日 下午3:29:24
	 * @return ResultVO
	 */
	public ResultVO setReserved(String sessionId,ReservedVO reservedVO);
	
	/**
	 * 
	 * TODO 查找该商户会员编号的最大值及预留范围值
	 * @author Zaki
	 * @time 2018年8月13日 下午5:00:57
	 * @return ResultVO
	 */
	public ResultVO findValue(String sessionId);
	
	/**
	 * 
	 * TODO 给客户赠送优惠券
	 * @author Zaki
	 * @time 2018年8月14日 下午8:50:59
	 * @return ResultVO
	 */
	public ResultVO giveCoupons(String userId,String couponsId);
}
